GEN = form.elf\
      data.elf\
      assert.elf\
      admit.elf\
      cutelim.elf\
      norm-decl.elf\
      norm-cases.elf\
      norm-theorems.elf\
      eq.elf\
      eq-lemmas.elf\
      eq-ax.elf\
      assert.inc\
      data.inc\
      cutelim.inc\
      admit.inc\
      norm-decl.inc\
      norm-cases.inc\
      assert-abbrevs.inc

INCLUDES = m4/config.m4\
           m4/quantifier_macros.m4\
           m4/eq_macros.m4\
           domains.m4\
           eq-domains.m4\
           assert.inc\
           data.inc\
           cutelim.inc\
           admit.inc\
           norm-decl.inc\
           norm-cases.inc\
           assert-abbrevs.inc

CAT = cat
M4 = m4
M4FLAGS = -I m4

.PHONY: output
output: ${GEN}

assert.inc data.inc cutelim.inc admit.inc norm-decl.inc norm-cases.inc assert-abbrevs.inc : AssertGen.hs
	./AssertGen.hs eval -- data.inc assert.inc admit.inc cutelim.inc norm-decl.inc norm-cases.inc assert-abbrevs.inc < lc.elf

%.elf : %.elf.m4 ${INCLUDES}
	${M4} ${M4FLAGS} $*.elf.m4 > $*.elf;

.PHONY: clean
clean:
	rm ${GEN}